package br.com.certificacao.Conjuntos.treemap;

import java.util.Map;
import java.util.TreeMap;

/**
 * Objetivo desta classe e, usando um TreeMap, classificar as pessoas pela idade em ordem decrescente.Lembrando que TreeMap nao permite duplicidade,
 * quando hoouverem serao eliminadas pela sobrescricao dos metodos equals e hashCode.Chave nao pode conter valores nulos, caso hajam a classe compila
 * mas ao executar gera NullPointerException.
 * @author Sidney
 *
 */

class Pessoa implements Comparable{
	String nome;
	Integer idade;
	
	Pessoa(String nome, Integer idade){
		this.nome = nome;
		this.idade = idade;
	}
	public String toString(){
		return "Idade: " + idade + " ";
	}
	public int hashCode(){
		return idade;
	}
	
	//determina que duas pessoas sao iguais quando tiverem a mesma idade
	public boolean equals(Object pessoa){
		Pessoa pessoas = (Pessoa)pessoa;
		if(pessoas.idade == this.idade)
			return true;
		return false;
	}
	@Override
	public int compareTo(Object pessoa) {
		Pessoa pessoas = (Pessoa)pessoa;
		return pessoas.idade.compareTo(this.idade);
	}
	
}
public class TestePessoaMap {
	public static void main(String[] args) {
		Map pessoas = new TreeMap();
		Pessoa p1 = new Pessoa("Sergio", 33);
		Pessoa p2 = new Pessoa("Almir",23);
		Pessoa p3 = new Pessoa("Eduardo",29);
		Pessoa p4 = new Pessoa("Celso",33);
		Pessoa p5 = new Pessoa("Zilda",27);
		pessoas.put(p1, " P1 - Sergio");
		pessoas.put(p2, " P2 - Almir");
		pessoas.put(p3, " P3 - Eduardo");
		pessoas.put(p4, " P4- Celso");
		pessoas.put(p5, " P5- Zilda");
		System.out.println(pessoas);
		
	}
	

}
